The present disclosure generally relates to the field of electronics. More particularly, an embodiment of the invention relates to techniques for improving address translation performance in virtualized environments.
Input/output (I/O) virtualization is a technology being developed to ensure that I/O devices function properly in a virtualized environment. For example, when an I/O device issues a direct memory access (DMA) request in a virtualized environment (for example, where there may be more than one operating system (OS) executing in the system), a translation may be performed on the address specified by the DMA request to ensure that the DMA operation and resulting effects are committed to the OS that corresponds to the I/O device.
The ATS (Address Translation Services) specification (e.g., draft revision 0.9, October 2006) seeks to mitigate the affects of address translation by offloading the address translation function to a peripheral component interconnect (PCI) express (PCIe) device (which may operate in accordance with PCIe Specification, Revision 2.0, October 2006). For example, the PCIe device may request an address translation and cache the translation data within a local cache to enable later use of the cached data for faster I/O DMA operations. ATS, however, may generate a substantial amount of traffic on a PCIe bus which may overwhelm the PCIe bus, resulting in degraded performance. Performance may be even more degraded as data transfer rates increase or as the number of address translation requests increases.